Pandas 创建DataFrame |
您所在的位置:网站首页 › data wrangling with pandas › Pandas 创建DataFrame |
Pandas 创建DataFrame,Pandas 数据帧(DataFrame)是二维数据结构,它包含一组有序的列,每列可以是不同的数据类型,DataFrame既有行索引,也有列索引,它可以看作是Series组成的字典,不过这些Series共用一个索引。 数据帧(DataFrame)的功能特点: 不同的列可以是不同的数据类型 大小可变 含行索引和列索引 可以对行和列执行算术运算假设要创建一个包含学生信息的DataFrame,如下图所示:
文章目录 1 DataFrame 结构体2 创建一个空的 DataFrame3 从列表创建 DataFrame4 从 ndarrays/Lists 的字典来创建 DataFrame5 从字典列表创建 DataFrame6 从 Series 字典来创建 DataFrame DataFrame 结构体pandas中的DataFrame可以使用以下构造函数创建: pandas.DataFrame( data, index, columns, dtype, copy)构造函数的参数说明如下: 参数 说明 data 支持多种数据类型,如:ndarray,series,map,lists,dict,constant和另一个DataFrame。 index 行标签,如果没有传递索引值,默认值为np.arrange(n) columns 列标签,如果没有传递索引值,默认值为np.arrange(n) dtype 每列的数据类型。 copy 是否复制数据,默认值为FalsePandas数据帧(DataFrame)支持多种输入类型来创建 列表(list) 字典(dict) 系列(series) Numpy ndarrays 其他数据帧(DataFrame)下面介绍如何创建数据帧(DataFrame)。 创建一个空的 DataFrame #import the pandas library and aliasing as pd import pandas as pd df = pd.DataFrame() print (df)执行结果如下: Empty DataFrame Columns: [] Index: [] 从列表创建 DataFrame可以使用单个列表或二维列表创建数据帧(DataFrame)。 例1:单个列表创建DataFrame import pandas as pd data = [1,2,3,4,5] df = pd.DataFrame(data) print (df)执行结果如下: 0 0 1 1 2 2 3 3 4 4 5例2:二维列表创建DataFrame import pandas as pd data = [['Alex',10],['Bob',12],['Clarke',13]] df = pd.DataFrame(data,columns=['Name','Age']) print (df)执行结果如下: Name Age 0 Alex 10 1 Bob 12 2 Clarke 13例3:二维列表创建DataFrame,并指定dtype import pandas as pd data = [['Alex',10],['Bob',12],['Clarke',13]] df = pd.DataFrame(data,columns=['Name','Age'],dtype=float) print (df)执行结果如下: Name Age 0 Alex 10.0 1 Bob 12.0 2 Clarke 13.0注: 可以观察到,dtype参数将Age列的类型更改为浮点。 从 ndarrays/Lists 的字典来创建 DataFrame所有的ndarrays必须具有相同的长度。如果传递了索引(index),则索引的长度应等于数组的长度。 如果没有传递索引,则默认情况下,索引为range(n),其中n为数组长度。 import pandas as pd data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]} df = pd.DataFrame(data) print (df)执行结果如下: Age Name 0 28 Tom 1 34 Jack 2 29 Steve 3 42 Ricky注:观察值0,1,2,3,它们是分配给每个使用函数range(n)的默认索引。 使用列表作为索引,创建一个数据帧(DataFrame)。 import pandas as pd data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]} df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4']) print (df)执行结果如下: Age Name rank1 28 Tom rank2 34 Jack rank3 29 Steve rank4 42 Ricky注:index参数为每行分配一个索引。 从字典列表创建 DataFrame字典列表可作为输入数据用来创建数据帧(DataFrame),字典键默认为列名。 例1:传递字典列表来创建数据帧(DataFrame)。 import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data) print (df)执行结果如下: a b c 0 1 2 NaN 1 5 10 20.0注:观察到,使用NaN填写空白区域 例2:传递字典列表和行索引来创建数据帧(DataFrame)。 import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data, index=['first', 'second']) print (df)执行结果如下: a b c first 1 2 NaN second 5 10 20.0例3:以下示例显示如何使用字典,行索引和列索引列表创建数据帧(DataFrame)。 import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] #With two column indices, values same as dictionary keys df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b']) #With two column indices with one index with other name df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1']) print (df1) print (df2)执行结果如下: a b first 1 2 second 5 10 a b1 first 1 NaN second 5 NaN注:df1是使用列索引创建的,与字典键相同 df2使用字典键以外的列索引创建DataFrame,使用NaN填写空白区域 从 Series 字典来创建 DataFrame通过传递 Series 字典来创建DataFrame,最终索引是两个Series索引的并集。 import pandas as pd d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print (df)执行结果如下: one two a 1.0 1 b 2.0 2 c 3.0 3 d NaN 4注:对于第一个Series,观察到没有包含索引'd',输出结果中,对应索引d区域,填写NaN。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |